bitkeeper revision 1.1041.6.4 (40e53583BjAVOWv5pUOm61mHPjnztg)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Fri, 2 Jul 2004 10:14:27 +0000 (10:14 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Fri, 2 Jul 2004 10:14:27 +0000 (10:14 +0000)
Fix 'halt' in xenolinux.

linux-2.4.26-xen-sparse/arch/xen/kernel/process.c

index aa59c377907db82a0a0de285cb7d0c1787b26502..6d805057439041d5b517f3a35923f972c37cf30b 100644 (file)
@@ -115,7 +115,7 @@ void cpu_idle (void)
     }
 }
 
-void machine_restart(char * __unused)
+void machine_restart(char *__unused)
 {
     /* We really want to get pending console data out before we die. */
     extern void xencons_force_flush(void);
@@ -128,7 +128,11 @@ void machine_halt(void)
     /* We really want to get pending console data out before we die. */
     extern void xencons_force_flush(void);
     xencons_force_flush();
-    HYPERVISOR_shutdown();
+    for ( ; ; ) /* loop without wasting cpu cycles */
+    {
+        HYPERVISOR_shared_info->vcpu_data[0].evtchn_upcall_pending = 0;
+        HYPERVISOR_block();
+    }
 }
 
 void machine_power_off(void)